package com.zzyl.serve.DTO;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.models.auth.In;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * @author L9629
 */
@Data
public class CheckInDTO {

    private CheckInElderDto checkInElderDto;
    private List<ElderFamilyDto> elderFamilyDtoList;
    private CheckInConfigDto checkInConfigDto;
    private CheckInContractDto checkInContractDto;
    @Data
    public static class CheckInElderDto {

        private String name;
        private String idCardNo;
        private String birthday;
        private String age;
        private Integer sex;
        private String phone;
        private String address;
        private String image;
        private String idCardPortraitImg;
        private String idCardNationalEmblemImg;
    }
    @Data
    public static class ElderFamilyDto {

        private String name;
        private String phone;
        private String kinship;
    }
    @Data
    public static class CheckInConfigDto {

        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime startDate;
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime endDate;
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime feeStartDate;
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime feeEndDate;
        private Long nursingLevelId;
        private String nursingLevelName;
        private BigDecimal bedFee;
        private Long bedId;
        private String code;
        private String floorId;
        private String floorName;
        private BigDecimal governmentSubsidy;
        private BigDecimal insurancePayment;
        private BigDecimal nursingFee;
        private BigDecimal otherFees;
        private String roomId;
        private BigDecimal deposit;
    }
    @Data
    public static class CheckInContractDto {

        private String thirdPartyName;
        private String thirdPartyPhone;
        private String contractName;
        private String agreementPath;
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime signDate;
    }
}
